#include "biblioteca.h"

void relatorio(int *qntdClienteResi, int *qntdClienteComer) {

	int classe = 0, i, Menu;
	float valor_total_conta;
	tipo_cliente clienteResi, clienteComer;
	char maiorCliente[100]; //aqui vai armazenar o telefone do cliente comercial que tem o maior valor de consumo
	float valorMaiorCliente = 0; //aqui vai armazenar o valor do cliente comercial que tem o maior valor de consumo
	char nome[100];
	while (Menu != 7) {
		system("clear");
		valor_total_conta = 0;
		printf("Escolha o item: \n 1 - Mostrar o valor total da conta de um assinante: \n");
		printf(" 2 - Mostrar a média de minutos em ligações locais da classe residencial:\n");
		printf(" 3 - Mostrar o valor médio dos interurbanos da classe comercial: \n");
		printf(" 4 - Mostrar o valor total das contas classe residencial: \n");
		printf(" 5 - Mostrar o valor total das contas classe comercial: \n");
		printf(" 6 - Mostrar o valor da maior conta e o número do telefone do assinante da classe comercial: \n");
		printf(" 7 - Voltar: \n");
		scanf("%d", &Menu);
		switch (Menu) {
		case 1:
			system("clear");
			printf("Digite o nome:");
			getchar();
			gets(nome);
			for (i = 0; i != ((*qntdClienteResi) + (*qntdClienteComer)); i++) { //faz um loop até a qtda de clientes.
				frClienteResi(&clienteResi, &i, qntdClienteResi);
				frClienteComer(&clienteComer, &i, qntdClienteComer);
				if (strcmp(clienteResi.nome, nome) == 10) { // ele retorna 10 quando é igual, logo.
					classe = 1;
				}
				if (strcmp(clienteComer.nome, nome) == 10) {
					classe = 2;
				}
				if (classe == 1) {
					valor_total_conta += clienteResi.tarifa.tarifa_residencial;
					valor_total_conta += clienteResi.tarifa.valor_do_minuto_local_Super;
					valor_total_conta += clienteResi.tarifa.valor_do_minuto_local_Movel;
					valor_total_conta += clienteResi.tarifa.valor_do_minuto_interurbana;
					valor_total_conta += clienteResi.tarifa.valor_do_minuto_interurbana_Movel;
					valor_total_conta += clienteResi.tarifa.valor_acesso_despertador;
					valor_total_conta += clienteResi.tarifa.valor_acesso_caixa_postal;
					printf("Cliente %s", clienteResi.nome);
					printf("Numero %s", clienteResi.telefone);
					printf("O valor total da sua conta foi de R$ %0.2f", valor_total_conta);
					getchar();
					break;
				}
				if (classe == 2) {
					valor_total_conta += clienteComer.tarifa.tarifa_comercial;
					valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Super;
					valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Movel;
					valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
					valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana_Movel;
					valor_total_conta += clienteComer.tarifa.valor_acesso_despertador;
					valor_total_conta += clienteComer.tarifa.valor_acesso_caixa_postal;
					printf("Cliente %s", clienteComer.nome);
					printf("Numero %s", clienteComer.telefone);
					printf("O valor total da sua conta foi de R$ %0.2f", valor_total_conta);
					getchar();
					break;
				}
			}
			break;
		case 2:
			system("clear");
			for (i = 0; i != (*qntdClienteResi); i++) {
				frClienteResi(&clienteResi, &i, qntdClienteResi);
				valor_total_conta += clienteResi.tarifa.valor_do_minuto_local_Super;
				if (i == (*qntdClienteResi)) {
					valor_total_conta = (valor_total_conta / (*qntdClienteResi));
				}
			}
			printf("O valor total das ligações locais dos clientes residenciais foi de R$ %0.2f", valor_total_conta);
			getchar();
			getchar();
			break;
		case 3:
			system("clear");
			for (i = 0; i != (*qntdClienteComer); i++) {
				frClienteComer(&clienteComer, &i, qntdClienteComer);
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
				if (i == (*qntdClienteComer)) {
					valor_total_conta = (valor_total_conta / (*qntdClienteComer));
				}
			}
			printf("O valor total das ligações interurbanas dos clientes comerciais foi de R$ %0.2f", valor_total_conta);
			getchar();
			getchar();
			break;
		case 4:
			system("clear");
			for (i = 0; i != (*qntdClienteResi); i++) {
				frClienteResi(&clienteResi, &i, qntdClienteResi);
				valor_total_conta += clienteResi.tarifa.tarifa_residencial;
				valor_total_conta += clienteResi.tarifa.valor_do_minuto_local_Super;
				valor_total_conta += clienteResi.tarifa.valor_do_minuto_local_Movel;
				valor_total_conta += clienteResi.tarifa.valor_do_minuto_interurbana;
				valor_total_conta += clienteResi.tarifa.valor_do_minuto_interurbana_Movel;
				valor_total_conta += clienteResi.tarifa.valor_acesso_despertador;
				valor_total_conta += clienteResi.tarifa.valor_acesso_caixa_postal;
			}
			printf("O valor total dos Cliente residenciais foi de R$ %0.2f", valor_total_conta);
			getchar();
			getchar();
			break;
		case 5:
			system("clear");
			for (i = 0; i != (*qntdClienteComer); i++) {
				frClienteComer(&clienteComer, &i, qntdClienteComer);
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
				valor_total_conta += clienteComer.tarifa.tarifa_comercial;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Super;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Movel;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana_Movel;
				valor_total_conta += clienteComer.tarifa.valor_acesso_despertador;
				valor_total_conta += clienteComer.tarifa.valor_acesso_caixa_postal;

			}
			printf("O valor total dos Clientes comerciais foi de R$ %0.2f", valor_total_conta);
			getchar();
			getchar();
			break;
		case 6:
			system("clear");
			for (i = 0; i != (*qntdClienteComer); i++) {
				frClienteComer(&clienteComer, &i, qntdClienteComer);
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
				valor_total_conta += clienteComer.tarifa.tarifa_comercial;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Super;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_local_Movel;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana;
				valor_total_conta += clienteComer.tarifa.valor_do_minuto_interurbana_Movel;
				valor_total_conta += clienteComer.tarifa.valor_acesso_despertador;
				valor_total_conta += clienteComer.tarifa.valor_acesso_caixa_postal;
				if (valor_total_conta > valorMaiorCliente) {
					valorMaiorCliente = valor_total_conta;
					strcpy(maiorCliente,clienteComer.telefone);
				}
			}
			printf("O maior consulmo entre os clientes comerciais foi de R$ %0.2f \n",valorMaiorCliente);
			printf("Do telefone %s",maiorCliente);
			getchar();
			getchar();
			break;
		case 7:
			system("clear");
			break;
		default:
			printf("Item do menu invalido\n");
			getchar();
			getchar();
			break;
		}
	}
}
